import axios from "axios";
import router from "@/router";
import { ElMessage } from "element-plus";
import { useTokenStore } from '@/stores/token';
const service = axios.create({
    baseURL: 'http://localhost:8080'
});

// 添加请求拦截器
service.interceptors.request.use(function (config) {
  const tokenStore = useTokenStore();
  // 在发送请求之前做些什么
  if (!config.url.startsWith("/login")) {
    config.headers.token = tokenStore.tokenStr;
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

//Axios响应拦截器
service.interceptors.response.use(resp => {
    // 对响应数据做点什么
    let token = resp.headers.token;
    const tokenStore = useTokenStore();
    tokenStore.update(token);
    return resp.data;
  }, error => {
    // 对响应错误做点什么
    if (error.status == 403) {
      ElMessage.error({
        message: "令牌错误请重新登录",
        duration: 1000,
        onClose: () => {
          const tokenStore = useTokenStore();
          tokenStore.$reset();
          //跳转到首页
          router.push('/login');
        }
      });
    }
  });
export default service;